====== BRAM & BRAM-ECC Data Analysis =====

===== 0. Raw data =====

==== JCM Readbacks ====

Only select runs (mostly BRAM with ECC) used JCM instead of ConfigMon.

  * Here is one of them: {{ ::data_analysis:v7-dynamic:201703-tamu:rawdata:readback_run102.7z |}}
  * Here is another:  {{ ::data_analysis:v7-dynamic:201703-tamu:rawdata:readback_run100.7z |}}
  * JCM Logs, run 100-105:  {{ ::data_analysis:v7-dynamic:201703-tamu:rawdata:tam0317_fmlogs_r100-105.7z |}}
  * JCM Logs, run 111-115:  {{ ::data_analysis:v7-dynamic:201703-tamu:rawdata:tam0317_jcmlogs11-116_119.7z |}}
  * JCM Logs, runs 92-99:  {{ ::data_analysis:v7-dynamic:201703-tamu:rawdata:tam0317_jcmlogs92-99.7z |}}

  * Diagnosis BRAM bit file{{ :data_analysis:v7-dynamic:201703-tamu:bram:v7bramdiagnoisis.bit.zip |}} 
----
===== 1. Data analysis =====

==== BRAM analysis (from JCM data) ====

Spreadsheet with BRAM analysis for runs posted above. It also includes a CRAM upset count. Rev 2 has the location of the clobbers. \\
{{ :data_analysis:v7-dynamic:201703-tamu:bramruns_rev2.xlsx |}}

==== BRAM analysis (from FuncMon data) ====

Cross section plots based on funcmon logs.\\
{{ ::data_analysis:v7-dynamic:201703-tamu:bram:bram_cross_sections_iv.pdf |}}
This file details how cross section has been computed. But, the plots have not been adjusted for the lack of uniformity in the thickness of the DUT.

{{ ::data_analysis:v7-dynamic:201703-tamu:bram:bram_cross_section_plot_update.pdf |}} \\

Updated cross section plots. These plots have the LET and cross section adjusted to account for the lack of uniformity in the DUT thickness. Definitions of the legends used in the last plots of this file are as follows:

Single bits: this cross section has been computed from the counts recorded by the single bit error counter used in runs with ECC. This curve is the same curve as is seen for runs without ECC when looking at the total number of upset bits:

Double bits: this cross section has been computed from the counts recorded by the double bit error counter used in runs with ECC. This is the lowest cross section that can be expected in space applications:

All bits: this cross section is computed from the number of bits found in error at the end of the run with ECC enabled. This curve is believed to be largely an artifact of the test and not representative of what will be seen in space usage. With the flux used for testing, there is a significant increase and accumulation of double bit errors. Consequently, the high flux used for test results in triple bit errors in words. The ECC interacts to correct these as if they were single bit errors resulting in additional errors. At the much lower flux in space, this mechanism has a very low probability which means the cross section would be much much lower. 

This mechanism also implies the number of single bit errors recorded is somewhat high. But, this is not significant because the cross section for the residual (all bits) uncorrected errors is more than an order of magnitude less than the cross section for single bit errors. That is the small increase is less than the uncertainty in the single bit error cross section.\\

Weibull curve fits with comparison to data published by Sandia. (Corrected captions to plots) \\
{{ ::data_analysis:v7-dynamic:201703-tamu:bram:sandia_vs_xrtc_results_II.pdf |}}

A description of the Nelder Mead algorithm used to find the least squares fit to the cross section data can be found here: http://reference.wolfram.com/language/tutorial/ConstrainedOptimizationGlobalNumerical.html#252245038

Comparison of 0->1 upsets with 1->0 upsets. Runs with ECC enabled showed significant asymmetry between 0->1 and 1->0 upsets \\
{{ ::data_analysis:v7-dynamic:201703-tamu:bram:upset_symmetry.pdf |}}

{{ ::data_analysis:v7-dynamic:201703-tamu:bram:bram_plots.zip |}} An archive of with selected cross section plots including .CSV files with plotted data

==== Remap events (from FuncMon data) ====

Large increments in the bit error counters which are inconsistent with Poisson statistics were seen during this testing. These increments show up as multiples of 256, 512 or 1024. 

Increments in multiples of 1024 were seen only in runs without logging enabled during the beam exposure and were detected in logged errors at the end of the beam run when the shutter was closed. All of these test runs were done without ECC enabled. These events are being referred to here as remap events.

Multiples of size 256 or 512 were only seen in runs with error logging as the DUT was being exposed. Increments of size 512 are easily seen when looking at the raw logs. In contrast, increments of size 256 are not easily distinguished from the backgroup of single bit upsets. But increments of size 256 are readily apparent when looking at histograms of all increments in the bit counters for a given run. Because no method has been found to reliably separate increments of size 256 from the background single bit upsets, no attempt has been made to compute cross sections for these events.

All of the runs showing increments of size 256 had ECC enable. And with the exception of one run, all of the runs which showed increments in multiples of 512 had ECC enabled.Because increments of size 512 are not seen in the data logged after the beam shutter was closed, it is apparent these are transient events and are assumed to be addressing errors.

Cross section versus LET for remap events (log plot) \\
{{ ::data_analysis:v7-dynamic:201703-tamu:bram:remapcrosssectioni.pdf |}}

Cross section versus LET for remap events (log-log plot) \\
{{ ::data_analysis:v7-dynamic:201703-tamu:bram:remapcrosssectionii.pdf |}}

Data for plots: {{ ::data_analysis:v7-dynamic:201703-tamu:bram:remapevents.xlsx |}}

Cross section shown as cm2/BRAM. For these plots, the number of BRAM has been adjusted to only count BRAM within the BRAG peak. This means some BRAM on the backside of the BRAM are not being counted which causes the cross section to be somewhat high for a few runs. Uncertainty in the number of BRAM visible has not been taken into consideration for plotting of error bars.
==== Histograms for bit error counters ====

These plots show histograms for the increments seen in the bit counters. The vertical scale shows the number of times an increment of the size shown on the horizontal scale was seen. At the top center of each plot is shown the run number and the input pattern in hexadecimal. Vertical gridlines in these plots are at multiples of 256

Runs without ECC (error logging enabled during beam exposure): {{ ::data_analysis:v7-dynamic:201703-tamu:bram:no_ecc_histrogram.pdf |}}

Runs with ECC (no error logging during beam exposure): {{ ::data_analysis:v7-dynamic:201703-tamu:bram:ecc_histograms.pdf |}}